package com.xzzz.irda.auth.server;

import com.xzzz.irda.auth.core.token.PasswordEncoder;
import com.xzzz.irda.auth.core.token.TokenEnhancer;
import com.xzzz.irda.auth.server.AuthServerConfiguration;

/**
 * 授权服务器配置工具, 通过传入{@link AuthServerConfiguration}服务端配置来操作相关配置信息
 *
 * @author wangyf
 * 
 */
public interface AuthServerConfigurer {

    /**
     * 配置服务端配置
     * @param authServerConfiguration 服务端默认配置
     */
    void configure(AuthServerConfiguration authServerConfiguration);

    /**
     * 配置密码处理器
     * @return 密码处理器
     */
    PasswordEncoder passwordEncoder();

    /**
     * 配置token增强
     * @return token增强
     */
    TokenEnhancer tokenEnhancer ();

}
